#include <subscriber/subscription.hpp>
//#include <boost/multi_index_container.hpp>
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_io.hpp>
#include <boost/uuid/uuid_generators.hpp>

#include <boost/lexical_cast.hpp>
#include <iostream>
#include <sstream>
#include <boost/detail/lightweight_test.hpp>
#include <boost/random.hpp>
#include <boost/uuid/uuid_io.hpp>


int main()
{
  fasys::channels::channels_container cc;
  fasys::subscriber::subscription s(&cc);

  boost::mt19937 ran;
  ran.seed(time(NULL)); // one should likely seed in a better way
  //boost::uuids::basic_random_generator<boost::mt19937> gen(&ran);
  
  using namespace ::boost::uuids;
  uuid u1 = uuid();
  uuid u2 = uuid();
  std::string su1 = boost::lexical_cast<std::string>(u1);
  std::cout << u1 << std::endl;
  std::cout << u2 << std::endl;

  boost::uuids::basic_random_generator<boost::mt19937> gen(&ran);
  //random_generator gen;
//  check_random_generator(gen);
  uuid u3 = gen();
  uuid u4 = gen();

  std::cout << u3 << std::endl;
  std::cout << u4 << std::endl;
  std::cout << boost::uuids::random_generator()() << std::endl;
  std::cout << boost::uuids::basic_random_generator<boost::mt19937>()() << std::endl;
  std::cout << gen() << std::endl;
  return 0;
}